#ifndef MAP_HH_
# define MAP_HH_

# include <vector>
# include <sstream>

# include "ant.hh"
# include "case.hh"
# include "MyErrors.hh"

class Ants;
class Case;

class Map
{
public:

  void add_ant (int posx, int posy, Ants* ant);
  void print_ant (int posx, int posy);

  int get_w ();
  int get_h ();
  Case& get_case (int height, int width);

  void set_wh (int, int);
  void set_seed (int);
  int get_seed ();

  void add_obstacle (int posx, int posy);
  void add_ressource (std::string name, int posx, int posy);

  std::vector<Case*> get_tab ();

  static Map* instance ();

private:

  Map ();
  Map (int a, int b);
  ~Map ()
  {}

private:

  static Map* pinstance_;
  int seed_;
  int width_;
  int height_;
  std::vector<Case*> tab_;
};

#endif /*! MAP_HH_ */
